package org.study.tk.spring.service;

import com.github.pagehelper.PageInfo;
import org.study.tk.spring.model.Student;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

/**
 * 接口的描述
 *
 * @author Administrator
 * @date 2021-04-20
 */
public interface StudentService {
    /**
     * 方法功能描述
     *
     * @param student
     * @return int
     */
    int insert(Student student);

    /**
     * 方法功能描述
     *
     * @param student
     * @return int
     */
    int insertSelective(Student student);

    /**
     * 方法功能描述
     *
     * @param list
     * @return int
     */
    int insertList(List<Student> list);

    /**
     * 方法功能描述
     *
     * @param student
     * @return int
     */
    int updateByPrimaryKeySelective(Student student);

    /**
     * 方法功能描述
     *
     * @param student
     * @return Student
     */
    Student selectByPrimaryKey(Student student);

    /**
     * 方法功能描述
     *
     * @param student
     * @return Student
     */
    Student selectOne(Student student);

    /**
     * 方法功能描述
     *
     * @return java.util.List<org.study.tk.spring.model.Student>
     */
    List<Student> selectAll();

    /**
     * 方法功能描述
     *
     * @param pageNum
     * @param pageSize
     * @return com.github.pagehelper.PageInfo<org.study.tk.spring.model.Student>
     */
    PageInfo<Student> startPage1(int pageNum, int pageSize);

    /**
     * 方法功能描述
     *
     * @param pageNum
     * @param pageSize
     * @return com.github.pagehelper.PageInfo<org.study.tk.spring.model.Student>
     */
    PageInfo<Student> startPage2(int pageNum, int pageSize);

    /**
     * 方法功能描述
     *
     * @param pageNum
     * @param pageSize
     * @return com.github.pagehelper.PageInfo<org.study.tk.spring.model.Student>
     */
    PageInfo<Student> offsetPage1(int pageNum, int pageSize);

    /**
     * 方法功能描述
     *
     * @param pageNum
     * @param pageSize
     * @return com.github.pagehelper.PageInfo<org.study.tk.spring.model.Student>
     */
    PageInfo<Student> offsetPage2(int pageNum, int pageSize);

    /**
     * 方法功能描述
     *
     * @param pageNum
     * @param pageSize
     * @return com.github.pagehelper.PageInfo<org.study.tk.spring.model.Student>
     */
    PageInfo<Student> doSelectPageInfoByStartPage(int pageNum, int pageSize);

    /**
     * 方法功能描述
     *
     * @param pageNum
     * @param pageSize
     * @return com.github.pagehelper.PageInfo<org.study.tk.spring.model.Student>
     */
    PageInfo<Student> doSelectPageInfoByOffsetPage(int pageNum, int pageSize);

    /**
     * 方法功能描述
     *
     * @return long
     */
    long count();

    /**
     * 方法功能描述
     *
     * @param example
     * @return java.util.List<Student>
     */
    List<Student> selectByExample(Example example);
}
